Interactive elements in a user interface

ABSTRACT

In particular embodiments, a computing device provides for presentation to a user a user interface, the user interface including a plurality of related interactive elements. The computing device may receive touch gesture input from the user selecting one of the plurality of related interactive elements. The touch gesture input may have a duration of at least a pre-determined amount of time. The computing device, in response to the touch gesture input, may rearrange the plurality of related interactive elements, rearranging including stacking the plurality of related interactive elements for presentation to the user.

PRIORITY

This application is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 13/959,673, filed 5 Aug. 2013, which claims thebenefit under 35 U.S.C. § 119(e) of U.S. Provisional Patent ApplicationNo. 61/807,432, filed 2 Apr. 2013, which is incorporated herein byreference.

TECHNICAL FIELD

This disclosure generally relates to a user interface.

BACKGROUND

A user interface (UI), in the industrial design field of human-machineinteraction, is the space where interactions between humans and machinesoccur. The goal of the interactions between a human, often referred toas a “user”, and a machine at the user interface is the user's controlof the machine and its operations (e.g., through user input) and machinefeedback (e.g., through program output). A graphical user interface(GUI) is a type of user interface that allows users to interact withsoftware applications executing on electronic or computing devicesthrough multimedia objects (e.g., images, videos, audios, etc.) ratherthan purely text commands.

SUMMARY OF PARTICULAR EMBODIMENTS

In particular embodiments, one or more interactive elements may bedisplayed on a screen of a computing device (e.g., a mobile computingdevice) as part of a user interface. The interactive elements may, forexample, represent communications from or activities of users of asocial-networking system. In particular embodiments, when multipleinteractive elements are displayed on a screen of the computing device,a user may perform a gesture to “stack” the interactive elements fordisplay on the screen. As an example, the user may press and hold aparticular interactive element on the screen, prompting the otherinteractive elements on the screen to stack behind the selectedinteractive element. In particular embodiments, individual interactiveelements or a stack of interactive elements may be removed from displayon the screen by a user gesture. As an example, the user may swipe tothe right (or left) on an interactive element or stack of interactiveelements, causing the interactive element or stack of interactiveelements to be dismissed from the screen. Similarly, the user mayreposition an interactive element or stack of interactive elements onthe screen using a gesture.

The embodiments disclosed above are only examples, and the scope of thisdisclosure is not limited to them. Particular embodiments may includeall, some, or none of the components, elements, features, functions,operations, or steps of the embodiments disclosed above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example network environment associated with asocial-networking system.

FIGS. 2A and 2B illustrate two example mobile electronic devices.

FIG. 3 illustrates an example social graph.

FIG. 4 illustrates an example object hierarchy.

FIGS. 5A-5O illustrate example user interfaces with interactiveelements.

FIG. 5P illustrates an example method for selecting an interactiveelement on a computing device.

FIG. 5Q illustrates an example method for rearranging interactiveelements.

FIG. 6 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

A user interface (UI) may be incorporated into any type of softwareapplications, including, for example, desktop applications, mobileapplications, or web-based applications, to enable users to interactwith and control the applications. A graphical user interface (GUI) is atype of user interface that enables users to interact with softwareapplications through multi-media objects, including, for example, icons,buttons, menus, images, video, or audios.

In particular embodiments, a software application may be associated witha social-networking system. FIG. 1 illustrates an example networkenvironment 100 associated with a social-networking system. Networkenvironment 100 includes a user 101, a client system 130, asocial-networking system 160, and a third-party system 170 connected toeach other by a network 110. Although FIG. 1 illustrates a particulararrangement of user 101, client system 130, social-networking system160, third-party system 170, and network 110, this disclosurecontemplates any suitable arrangement of user 101, client system 130,social-networking system 160, third-party system 170, and network 110.As an example and not by way of limitation, two or more of client system130, social-networking system 160, and third-party system 170 may beconnected to each other directly, bypassing network 110. As anotherexample, two or more of client system 130, social-networking system 160,and third-party system 170 may be physically or logically co-locatedwith each other in whole or in part. Moreover, although FIG. 1illustrates a particular number of users 101, client systems 130,social-networking systems 160, third-party systems 170, and networks110, this disclosure contemplates any suitable number of users 101,client systems 130, social-networking systems 160, third-party systems170, and networks 110. As an example and not by way of limitation,network environment 100 may include multiple users 101, client system130, social-networking systems 160, third-party systems 170, andnetworks 110.

In particular embodiments, user 101 may be an individual (human user),an entity (e.g., an enterprise, business, or third-party application),or a group (e.g., of individuals or entities) that interacts orcommunicates with or over social-networking system 160. In particularembodiments, social-networking system 160 may be a network-addressablecomputing system hosting an online social network. Social-networkingsystem 160 may generate, store, receive, and transmit social-networkingdata, such as, for example, user-profile data, concept-profile data,social-graph information, or other suitable data related to the onlinesocial network. Social-networking system 160 may be accessed by theother components of network environment 100 either directly or vianetwork 110. In particular embodiments, social-networking system 160 mayinclude an authorization server that allows users 101 to opt in or optout of having their actions logged by social-networking system 160 orshared with other systems (e.g., third-party systems 170), such as, forexample, by setting appropriate privacy settings. In particularembodiments, third-party system 170 may be a network-addressablecomputing system that can host various third-party software applications(e.g., web-based applications). Third-party system 170 may generate,store, receive, and transmit various types of data, such as, forexample, texts, images, videos, or audios. Third-party system 170 may beaccessed by the other components of network environment 100 eitherdirectly or via network 110. In particular embodiments, one or moreusers 101 may use one or more client systems 130 to access, send datato, and receive data from social-networking system 160 or third-partysystem 170. Client system 130 may access social-networking system 160 orthird-party system 170 directly, via network 110, or via a third-partysystem. As an example and not by way of limitation, client system 130may access third-party system 170 via social-networking system 160.Client system 130 may be any suitable computing device, such as, forexample, a personal computer, a laptop computer, a cellular telephone, asmartphone, or a tablet computer.

This disclosure contemplates any suitable network 110. As an example andnot by way of limitation, one or more portions of network 110 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 110 may include one or more networks110.

Links 150 may connect client system 130, social-networking system 160,and third-party system 170 to communication network 110 or to eachother. This disclosure contemplates any suitable links 150. Inparticular embodiments, one or more links 150 include one or morewireline (such as for example Digital Subscriber Line (DSL) or Data OverCable Service Interface Specification (DOCSIS)), wireless (such as forexample Wi-Fi or Worldwide Interoperability for Microwave Access(WiMAX)), or optical (such as for example Synchronous Optical Network(SONET) or Synchronous Digital Hierarchy (SDH)) links. In particularembodiments, one or more links 150 each include an ad hoc network, anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, aportion of the Internet, a portion of the PSTN, a cellulartechnology-based network, a satellite communications technology-basednetwork, another link 150, or a combination of two or more such links150. Links 150 need not necessarily be the same throughout networkenvironment 100. One or more first links 150 may differ in one or morerespects from one or more second links 150.

In particular embodiments, data (e.g., data representing various typesof information or content) may be sent between servers associated withsocial-networking system 160 and individual client systems 130 vianetwork 110. When two electronic devices (e.g., a server and a client)are connected to a network (e.g., a computer or communications network,such as network 110), data may be transmitted between the two devicesover the network using one or more suitable network protocols. A networkmay include any number of sub-networks. By transmitting data between thetwo devices, the two devices may communicate with each other.

In network communications, there are two ways to send a communication(i.e., data) from one device to another device: push and pull. With pushtechnology, the request for the communication transaction is initiatedby the sending device. That is, the sending device “pushes” thecommunication, so to speak, to the receiving device. In this case, thesending device may be considered the active party and the receivingdevice may be considered the passive party in the transaction. Incontrast, with pull technology, the request for the communicationtransaction is initiated by the receiving device. That is, the receivingdevice “pulls” the communication, so to speak, from the sending device.In this case, the sending device may be considered the passive party andthe receiving device may be considered the active party in thetransaction. In particular embodiments, a server associated withsocial-networking system 160 may push data to a client system 130. Acommunication pushed from a server to a client may be referred to as a“push notification”. Similarly, a client system 130 may push data to aserver associated with social-networking system 160.

In particular embodiments, a client system 130 may be a mobileelectronic or computing device. A mobile electronic device—such as aSmartphone, tablet computer, or laptop computer—may includefunctionality for determining its location, direction, or orientation,such as a GPS receiver, compass, or gyroscope. Such a mobile device mayalso include functionality for wireless communication, such as BLUETOOTHcommunication, near-field communication (NFC), or infrared (IR)communication or communication with a wireless local area networks(WLANs) or cellular-telephone network. Such a mobile device may alsoinclude one or more cameras, scanners, touchscreens, microphones, orspeakers. Mobile electronic devices may also execute softwareapplications, such as games, web browsers, or social-networkingapplications. With social-networking applications, users may connect,communicate, and share information with other users in their socialnetworks.

In particular embodiments, a mobile electronic device (e.g., Smartphoneor tablet computer) may include a touchscreen capable of receiving touchinput. FIG. 2A illustrates an example mobile electronic device 210(e.g., a Smartphone) having a touchscreen 215. Touchscreen 215 mayincorporate one or more touch sensors and a touch-sensor controller fordetecting the presence and location of a touch (e.g., from a user'sfinger) or the proximity of an object (e.g., a stylus). In particularembodiments, a specific touch detected via touchscreen 215 may result ina touch input event.

Different mobile electronic devices may have different designs. As aresult, the size, shape, or aspect ration of the touchscreens ofdifferent mobile devices may differ. FIG. 2B illustrates another examplemobile electronic device 220 (e.g., a tablet computer) having atouchscreen 225. Similarly, touchscreen 225 may incorporate one or moretouch sensors and a touch-sensor controller for detecting the presenceand location of a touch (e.g., from a user's finger) or the proximity ofan object (e.g., a stylus). A specific touch detected via touchscreen225 may result in a touch input event. However, since mobile electronicdevices 210 and 220 are two different types of devices, their respectivetouchscreen 215 and 225 have different sizes and aspect ratios.

There may be various types of touches or gestures, such as single tap,double tap, short press, long press, slide, swipe, flip, pinch open,pinch close, pan, or drag, corresponding to various types of touch inputevents. Different touch input events may result in different responsesand this disclosure contemplates any applicable gesture.

Social-networking system 160 may store various types of data including,for example, user data, application data, or social data. In particularembodiments, such data may be stored in a graph having any number ofnodes and edges, where each edge connects two nodes. The graph is oftenreferred to as a “social graph” or “open graph” as it contains, amongothers, social information.

FIG. 3 illustrates example social graph 300. In particular embodiments,social-networking system 160 may store one or more social graphs 300 inone or more data stores. In particular embodiments, social graph 300 mayinclude multiple nodes—which may include multiple user nodes 302 ormultiple concept nodes 304—and multiple edges 306 connecting the nodes.Example social graph 300 illustrated in FIG. 3 is shown, for didacticpurposes, in a two-dimensional visual map representation. In particularembodiments, a social-networking system 160, client system 130, orthird-party system 170 may access social graph 300 and relatedsocial-graph information for suitable applications. The nodes and edgesof social graph 300 may be stored as data objects, for example, in adata store (such as a social-graph database). Such a data store mayinclude one or more searchable or queryable indexes of nodes or edges ofsocial graph 300.

In particular embodiments, a user node 302 may correspond to a user ofsocial-networking system 160. As an example and not by way oflimitation, a user may be an individual (human user), an entity (e.g.,an enterprise, business, or third-party application), or a group (e.g.,of individuals or entities) that interacts or communicates with or oversocial-networking system 160. In particular embodiments, when a userregisters for an account with social-networking system 160,social-networking system 160 may create a user node 302 corresponding tothe user, and store the user node 302 in one or more data stores. Usersand user nodes 302 described herein may, where appropriate, refer toregistered users and user nodes 302 associated with registered users. Inaddition or as an alternative, users and user nodes 302 described hereinmay, where appropriate, refer to users that have not registered withsocial-networking system 160. In particular embodiments, a user node 302may be associated with information provided by a user or informationgathered by various systems, including social-networking system 160. Asan example and not by way of limitation, a user may provide his or hername, profile picture, contact information, birth date, sex, maritalstatus, family status, employment, education background, preferences,interests, or other demographic information. In particular embodiments,a user node 302 may be associated with one or more data objectscorresponding to information associated with a user. In particularembodiments, a user node 302 may correspond to one or more webpages.

In particular embodiments, a concept node 304 may correspond to aconcept. As an example and not by way of limitation, a concept maycorrespond to a place (such as, for example, a movie theater,restaurant, landmark, or city); a website (such as, for example, awebsite associated with social-network system 160 or a third-partywebsite associated with a web-application server); an entity (such as,for example, a person, business, group, sports team, or celebrity); aresource (such as, for example, an audio file, video file, digitalphoto, text file, structured document, or application) which may belocated within social-networking system 160 or on an external server,such as a web-application server; real or intellectual property (suchas, for example, a sculpture, painting, movie, game, song, idea,photograph, or written work); a game; an activity; an idea or theory;another suitable concept; or two or more such concepts. A concept node304 may be associated with information of a concept provided by a useror information gathered by various systems, including social-networkingsystem 160. As an example and not by way of limitation, information of aconcept may include a name or a title; one or more images (e.g., animage of the cover page of a book); a location (e.g., an address or ageographical location); a website (which may be associated with a URL);contact information (e.g., a phone number or an email address); othersuitable concept information; or any suitable combination of suchinformation. In particular embodiments, a concept node 304 may beassociated with one or more data objects corresponding to informationassociated with concept node 304. In particular embodiments, a conceptnode 304 may correspond to one or more webpages.

In particular embodiments, a node in social graph 300 may represent orbe represented by a webpage (which may be referred to as a “profilepage”). Profile pages may be hosted by or accessible tosocial-networking system 160. Profile pages may also be hosted onthird-party websites associated with a third-party server 170. As anexample and not by way of limitation, a profile page corresponding to aparticular external webpage may be the particular external webpage andthe profile page may correspond to a particular concept node 304.Profile pages may be viewable by all or a selected subset of otherusers. As an example and not by way of limitation, a user node 302 mayhave a corresponding user-profile page in which the corresponding usermay add content, make declarations, or otherwise express himself orherself. As another example and not by way of limitation, a concept node304 may have a corresponding concept-profile page in which one or moreusers may add content, make declarations, or express themselves,particularly in relation to the concept corresponding to concept node304.

In particular embodiments, a concept node 304 may represent athird-party webpage or resource hosted by a third-party system 170. Thethird-party webpage or resource may include, among other elements,content, a selectable or other icon, or other inter-actable object(which may be implemented, for example, in JavaScript, AJAX, or PHPcodes) representing an action or activity. As an example and not by wayof limitation, a third-party webpage may include a selectable icon suchas “like,” “check in,” “eat,” “recommend,” or another suitable action oractivity. A user viewing the third-party webpage may perform an actionby selecting one of the icons (e.g., “eat”), causing a client system 130to transmit to social-networking system 160 a message indicating theuser's action. In response to the message, social-networking system 160may create an edge (e.g., an “eat” edge) between a user node 302corresponding to the user and a concept node 304 corresponding to thethird-party webpage or resource and store edge 306 in one or more datastores.

In particular embodiments, a pair of nodes in social graph 300 may beconnected to each other by one or more edges 306. An edge 306 connectinga pair of nodes may represent a relationship between the pair of nodes.In particular embodiments, an edge 306 may include or represent one ormore data objects or attributes corresponding to the relationshipbetween a pair of nodes. As an example and not by way of limitation, afirst user may indicate that a second user is a “friend” of the firstuser. In response to this indication, social-networking system 160 maytransmit a “friend request” to the second user. If the second userconfirms the “friend request,” social-networking system 160 may createan edge 306 connecting the first user's user node 302 to the seconduser's user node 302 in social graph 300 and store edge 306 associal-graph information in one or more of data stores (e.g., datastores associated with social-networking system 160). In the example ofFIG. 3, social graph 300 includes an edge 306 indicating a friendrelation between user nodes 302 of user “A” and user “B” and an edgeindicating a friend relation between user nodes 302 of user “C” and user“B.” Although this disclosure describes or illustrates particular edges306 with particular attributes connecting particular user nodes 302,this disclosure contemplates any suitable edges 306 with any suitableattributes connecting user nodes 302. As an example and not by way oflimitation, an edge 306 may represent a friendship, family relationship,business or employment relationship, fan relationship, followerrelationship, visitor relationship, subscriber relationship,superior/subordinate relationship, reciprocal relationship,non-reciprocal relationship, another suitable type of relationship, ortwo or more such relationships. Moreover, although this disclosuregenerally describes nodes as being connected, this disclosure alsodescribes users or concepts as being connected. Herein, references tousers or concepts being connected may, where appropriate, refer to thenodes corresponding to those users or concepts being connected in socialgraph 300 by one or more edges 306.

In particular embodiments, an edge 306 between a user node 302 and aconcept node 304 may represent a particular action or activity performedby a user associated with user node 302 toward a concept associated witha concept node 304. As an example and not by way of limitation, asillustrated in FIG. 3, a user may “like,” “attended,” “played,”“listened,” “cooked,” “worked at,” or “watched” a concept, each of whichmay correspond to a edge type or subtype. A concept-profile pagecorresponding to a concept node 304 may include, for example, aselectable “check in” icon (such as, for example, a clickable “check in”icon) or a selectable “add to favorites” icon. Similarly, after a userclicks these icons, social-networking system 160 may create a “favorite”edge or a “check in” edge in response to a user's action correspondingto a respective action. As another example and not by way of limitation,a user (user “C”) may listen to a particular song (“Ramble On”) using aparticular application (SPOTIFY, which is an online music application).In this case, social-networking system 160 may create a “listened” edge306 and a “used” edge (as illustrated in FIG. 3) between user nodes 302corresponding to the user and concept nodes 304 corresponding to thesong and application to indicate that the user listened to the song andused the application. Moreover, social-networking system 160 may createa “played” edge 306 (as illustrated in FIG. 3) between concept nodes 304corresponding to the song and the application to indicate that theparticular song was played by the particular application. In this case,“played” edge 306 corresponds to an action performed by an externalapplication (SPOTIFY) on an external audio file (the song “Imagine”).Although this disclosure describes particular edges 306 with particularattributes connecting user nodes 302 and concept nodes 304, thisdisclosure contemplates any suitable edges 306 with any suitableattributes connecting user nodes 302 and concept nodes 304. Moreover,although this disclosure describes edges between a user node 302 and aconcept node 304 representing a single relationship, this disclosurecontemplates edges between a user node 302 and a concept node 304representing one or more relationships. As an example and not by way oflimitation, an edge 306 may represent both that a user likes and hasused at a particular concept. Alternatively, another edge 306 mayrepresent each type of relationship (or multiples of a singlerelationship) between a user node 302 and a concept node 304 (asillustrated in FIG. 3 between user node 302 for user “E” and conceptnode 304 for “SPOTIFY”).

In particular embodiments, social-networking system 160 may create anedge 306 between a user node 302 and a concept node 304 in social graph300. As an example and not by way of limitation, a user viewing aconcept-profile page (such as, for example, by using a web browser or aspecial-purpose application hosted by the user's client system 130) mayindicate that he or she likes the concept represented by the conceptnode 304 by clicking or selecting a “Like” icon, which may cause theuser's client system 130 to transmit to social-networking system 160 amessage indicating the user's liking of the concept associated with theconcept-profile page. In response to the message, social-networkingsystem 160 may create an edge 306 between user node 302 associated withthe user and concept node 304, as illustrated by “like” edge 306 betweenthe user and concept node 304. In particular embodiments,social-networking system 160 may store an edge 306 in one or more datastores. In particular embodiments, an edge 306 may be automaticallyformed by social-networking system 160 in response to a particular useraction. As an example and not by way of limitation, if a first useruploads a picture, watches a movie, or listens to a song, an edge 306may be formed between user node 302 corresponding to the first user andconcept nodes 304 corresponding to those concepts. Although thisdisclosure describes forming particular edges 306 in particular manners,this disclosure contemplates forming any suitable edges 306 in anysuitable manner.

In particular embodiments, a set of objects may be organized into ahierarchy based on, for example, how the individual objects are relatedto each other. An object hierarchy may have any number of levels, and ateach level, there may be any number of objects. Parent-child or siblingrelationships may exist between specific objects in the hierarchy.Within an object hierarchy, a parent object is one level above the levelof its child objects. Two sibling objects are at the same level andshare the same parent object. In addition, any portion of the hierarchymay also be considered a hierarchy in itself.

FIG. 4 illustrates a portion of an example object hierarchy 400 thatincludes a number of objects 410. FIG. 4 is in fact a visualrepresentation of an object hierarchy. Each node represents a specificobject in the hierarchy, and each edge connecting two nodes represents aparent-child relationship between the two corresponding objects.

In particular embodiments, an object in a hierarchy may or may not havea parent. If an object does not have a parent, it may be referred to asa “root” object (e.g., object 410A). Typically, the root object ispositioned at the first or topmost level of the hierarchy. In particularembodiments, an object in a hierarchy may or may not have any children.If an object does not have any children, it may be referred to as a“leaf” or “terminal” object (e.g., object 410B). If an object does havechildren (e.g., object 410C), it may have any number of children. Inaddition, objects sharing the same parent may be referred to as eachother's “siblings”. For example, in FIG. 4, object 410C is the parent ofobjects 410D and 410B. Objects 410D and 410B are the children of object410C and are siblings to each other. Thus, a hierarchy of objects (e.g.,object hierarchy 400) not only includes the individual objects (e.g.,objects 410) themselves but also indicates the relationships among thespecific objects. Moreover, the position of a specific object within thehierarchy may indicate its relationships with other objects in thehierarchy.

Objects 410 may be of various types, and this disclosure contemplatesany applicable object types. For example and without limitation, theterm “object” may refer to any type of content, including but notlimited to images, videos, captions, text blocks or boxes,user-interface elements, clickable links, news feed stories, referencesto other objects, advertisements, calendar events, units for displayingopen graph analysis that may be graphically rendered, applications,websites, web pages, books, chapters. In particular embodiments, given ahierarchy of objects, which may be a portion of another, largerhierarchy of objects, the hierarchical relationships (e.g., parent-childor sibling relationships, positions of the objects within the hierarchy)between specific objects may direct some aspects of how these objectsbehave in the context of a user interface or how the objects arepresented to a user.

As an example, in the context of the desktop of a computing device, thedesktop may be a parent object, and sometimes the root object of ahierarchy, whose child objects are the individual software applicationsavailable on the desktop. A software application, while itself being oneof the child objects of the desktop, is also the parent object of theindividual components of that software application. Different softwareapplications may include different components. For example, for asoftware application that manages digital books (e.g., a book readerapplication), its components may include the digital books available,the individual chapters of each book, the pages of each chapter, and thetexts, images, videos, audios, or other content or media elements oneach page. Each of these also corresponds to an object (e.g.,user-interface component) in the hierarchy. More specifically, withinthe hierarchy, the digital book application may be the parent object ofthe digital books. A digital book may be the parent object of theindividual chapters of that book. A chapter, while itself being one ofthe child objects of the book, is also the parent object of the pages inthat chapter. A page is the parent object of the texts, images, videos,audios, or other content or media elements on that page. A text block,image, video, audio, or other content or media element is one of thechild objects of the page to which it belongs. Similarly, for a softwareapplication that manages news feeds, its components may include theindividual news channels and the news stories within each channel. Eachof these may correspond to an object. Within the hierarchy, thenews-feed application, while itself being one of the child objects ofthe desktop, is also the parent object of the news channels. A newschannel in turn is the parent object of the news stories included inthat channel.

As another example, in the context of the Internet or the World WideWeb, the Internet may be a parent object whose child objects are theindividual websites. A website, while itself being one of the childobjects of the Internet, is also the parent object of the individual webpages of that website. A web page, while itself being one of the childobjects of the website to which it belongs, is the parent object of thetexts, images, videos, audios, or links (e.g., Uniform Resource Locators(URLs)) included in the web page. Each text block, image, video, audio,or link may also correspond to a specific object in the hierarchy.

As a third example, a website, such as a social-networking websiteimplemented by social-networking system 160, may also be arranged in ahierarchical structure for navigating the content of thesocial-networking website. In this context, the social-networkingwebsite may be a parent object whose child objects are the components(e.g., photo albums, user profile pages, etc.) of the website. Forexample, a photo album, while itself being a child object of thesocial-networking website, may in turn be a parent object, and theindividual photos within the album may be the child objects of the photoalbum. A user's profile page may be structured in such a hierarchicalfashion as well. The profile page itself may be considered a parentobject, and the individual objects on the profile page may be the childobjects of the profile page. In particular embodiments, a profile pagemay be considered and rendered (e.g., for presentation to a user) as alinear timeline of objects, such as, for example and without limitation,photos, photo albums, check-ins, comments from other users, attendedevents, tags, applications the user has added to the profile page,stories, songs the user has listened to, playlists. These various typesof objects may all be children of the profile page, or may be furtherarranged into multiple levels. With some implementations, a user'sprofile page may include any number of sections, such as the user'seducation and employment information, the user's public “wall”, or theuser's social connections. Then the various types of objects above maybe divided into specific sections.

In particular embodiments, an object 410 may be a component of a userinterface. In this case, object hierarchy 400 may correspond to the userinterface, and each object 410 may correspond to a specific component ofthe user interface. A user interface may have various types ofcomponents, and this disclosure contemplates any applicableuser-interface component types. For example, a user-interface component(i.e., an object 410) may be a window, a section, a tab, an image, avideo, an audio, a text block, a menu, an icon, a button, a checkbox, awebsite, a web page, a frame, a clickable link, a message, a post, or aninput field. In particular embodiments, an object 410 may be consumed bya user if the user is able to, for example and without limitation,interact with, view, read, listen to, manipulate, or handle the object410. For example, some user-consumable objects 410 may be texts, images,videos, audios, feeds, executables (e.g., application programs orgames), websites, web pages, digital books, photo albums, posts, ormessages.

In particular embodiments, when the user interface corresponding toobject hierarchy 400 is displayed (e.g., on a client system 130), thestructure of the corresponding object hierarchy 400 may reflect thestructure of the user interface. The relationships among the individualcomponents in the user interface, as reflected in object hierarchy 400,may influence how these components are organized and presented to users.The user interface may have any number of layers, respectivelycorresponding to the individual levels of object hierarchy 400. Objects410 (e.g., user-interface components) at a specific level of objecthierarchy 400 are displayed in the corresponding layer of the userinterface. With some implementations, the lowest or bottommost layer ofthe user interface corresponds to the first or topmost level of objecthierarchy 400. Thus, root object 410A is displayed in the lowest layerof the user interface. Furthermore, in the user interface, each object410 (e.g., user-interface component) is displayed in a layer immediatelyabove the layer where its parent, if one exists, is displayed andimmediately below the layer where its children, if any, are displayed.Sibling objects 410 are displayed at the same layer. Thus, the positionof a component in the user interface indicates its relationships (e.g.,parent-child or sibling) with other components in the user interface.

In particular embodiments, a user-interface component (e.g., an image, avideo, a folder, etc.) may be displayed in various display modes. As anexample, the user-interface component may be displayed in a“full-screen” mode, where the user-interface component occupies theentire or nearly the entire display area (e.g., the screen of anelectronic device). As another example, the user-interface component maybe displayed in an “on-page” mode, where the user-interface component isincluded in another user-interface component and displayed as a part ofthat other user-interface component (e.g., an image is displayed as apart of a web page). As a third example, the user-interface componentmay be displayed in an “index” mode, where the user-interface componentis a part of a series of user-interface components (e.g., an image isdisplayed together with other images from the same album, or a chapterof a book is displayed in the table of content of the book together withother chapters from the same book).

In particular embodiments, a hierarchical user interface may be used topresent content to a user. Such a user interface may be referred to as a“content feed” or “news feed” user interface. The content may be of anytype and format, such as, for example and without limitation, text,icon, image, video, audio, web page, post, or message. This disclosurecontemplates any applicable content type and format. In particularembodiments, the individual content items (e.g., text, image, video,audio, web page, post, message, news piece, etc.) may be organized intovarious categories, referred to as content sections. For example,related content items may be categorized into the same content section.The user interface may include any number of content sections, and eachcontent section may include any number of content items. Hierarchically,a content section may be the parent of the content items belonging tothat section. For example, various photos taken during a holiday tripmay be organized into the same album, and various photo albums may beorganized into the photo section of the user interface.

In particular embodiments, a user may consume or interact with aspecific content item. For example, a user may consume or interact witha content item when the user scrolls, opens up, views, listens to,selects, reviews, comments on, clicks on, or taps the content item. Thisdisclosure contemplates any applicable means for a user to consume orinteract with a content item.

A user may interact with a computing device such as a mobile device(e.g., smartphone, tablet computer, etc.) through a user interfaceassociated with an operating system or application running on thecomputing device (including, e.g., any third-party or factory-defaultapplications). The application may be, for example, a news feedapplication associated with a social-networking website, a cameraapplication, a photo-viewing application, a message or status composer,an email or chat application, a game, a web browser, a telephony ortext-messaging application, or any other suitable type of application.The operating system running on the computing device may provide one ormore screens for the computing device and its applications including,for example, a home screen, a lock screen, or a launch screen.

In particular embodiments, while the user interacts with a userinterface associated with an application, home screen, lock screen, orlaunch screen on the computing device, the user may be presented with aninteractive element. An interactive element may include, for example, anicon, an image, a text block, a menu or portion of a menu, a button, acheckbox, a frame, a clickable link, a section, an input field, or anyother suitable type of user-interface element. An interactive element ofa user interface may be associated with the same application oroperating system screen associated with the user interface. Aninteractive element of a user interface may be associated with adifferent application or screen (e.g., having its own user interface).As an example, if a user is viewing a home screen of the computingdevice, an interactive element associated with a news feed applicationmay be displayed to the user within the user interface of the homescreen (e.g., the interactive element may “float” on top of the displayof the home screen). An interactive element may indicate information tothe user of the computing device. As an example, the interactive elementmay indicate that the user has received a message from a second user ona social-networking website in which both participate. The interactiveelement may, in particular embodiments, include some or all of the textof the message and may, in other embodiments, be displayed without textof the message. Any suitable type of information may be indicated by aninteractive element including, for example, breaking news, trendingtopics, or actions associated with other users of the social-networkingwebsite. For example, an interactive element may include text indicatingan action associated with a second user of the social-networkingwebsite, such as the second user tagging the device user in a post orthe second user liking a post of the device user in thesocial-networking website. In particular embodiments, an interactiveelement may indicate more than one type of information. As an example,the interactive element may indicate that the device user has received amessage from a second user of a social-networking website, and it mayalso indicate that the second user is performing one or more actions(e.g., associated with the social-networking website). An interactiveelement may, in particular embodiments, not be associated with aparticular item of information or event—for example, an interactiveelement may correspond only to the opening of a user interface of anapplication on the computing device. FIG. 5A illustrates an examplescreen of a computing device with multiple interactive elements,including interactive elements indicating messages received by the userof the computing device as well as actions associated with users of asocial-networking web site.

An interactive element may be displayed in a persistent manner. Inparticular embodiments, an interactive element may be displayed untilthe computing device receives user input such as, for example, userinput selecting the interactive element or user input dismissing theinteractive element. By way of example, user input selecting aninteractive element may include clicking on or near the interactiveelement (using, e.g., an input/output device such as a mouse or a trackpad), tapping on or near the interactive element (using, e.g., a stylusor the user's finger), dragging the interactive element, or any othersuitable touch or gesture (e.g. single tap, double tap, short press,long press, slide, swipe, flip, pinch open, or pinch close on or nearthe interactive element). Different user inputs may result in selectionof the interactive element, and this disclosure contemplates anyapplicable user input for selection. Additionally, different types ofuser inputs may be mapped by the computing device to different types ofbehaviors within a user interface. For example, the user may select theinteractive element by pressing on or near the element on a screen ofthe computing device. The user may reposition the interactive elementfor continued display on the screen by selecting the interactive element(e.g. by pressing it) and dragging it to a desired location on thescreen. The user may also select the interactive element by tapping theinteractive element, opening, for example, a user interface of anapplication. The user may also open a user interface associated with aninteractive element by selecting and dragging the interactive element toa particular area of the screen (e.g., the rightmost edge). User inputdismissing the interactive element may include any suitable touch orgesture, such as those described above. The user may, for example,provide input to dismiss the interactive element by pressing theinteractive element and dragging it “off” (e.g. toward the edge of) thescreen of the computing device. If the computing device receives userinput to dismiss the interactive element, the interactive element may beremoved from display to the user (e.g., removed from the screen displayof the computing device). The interactive element, when dismissed, maygradually disappear (e.g., fade out) from the screen of the mobiledevice. In particular embodiments, when the computing device receivesuser input selecting an interactive element (e.g., by any of thegestures or actions described above), a user interface (e.g., of anapplication associated with the interactive element) is opened by thecomputing device. FIG. 5B illustrates an example of a user tapping on aninteractive element to select the element on a screen of a computingdevice.

In particular embodiments, when the computing device receives user inputselecting an interactive element (e.g., by a tap), an animationassociated with the interactive element may occur. As an example, a userof the computing device may perform a first gesture to interact with aninteractive element on a home or lock screen of the computing device. Asan example, the device user may tap an interactive element (e.g., anotification of a second user's activity on a social-networking website)on a lock screen of the computing device. The device user's firstgesture (e.g., tap) may cause an animation in the user interface tooccur. For example, the interactive element tapped by the device user onthe lock screen may “flip” to reveal text instructing the device user toperform a second gesture (e.g., another tap, a slide, a swipe, etc.) tounlock the screen or enter an application corresponding to theinteractive element. Any suitable animation or action is contemplated bythis disclosure. FIGS. 5C-5E illustrate an example of an interactiveelement tapped by a device user flipping to reveal text instructing thedevice user to “Tap again to view” the selected interactive element(e.g., in a user interface of the application associated with theinteractive element). FIG. 5H illustrates an example of an interactiveelement tapped by a device user flipping to reveal text instructing thedevice user to “Slide to unlock” the device (and, e.g., view theselected interactive element in a user interface of the applicationassociated with the interactive element). If, for example, theinteractive element represents a message received from a second user ofa social-networking system, the second gesture (e.g., a second tap or aslide after a first tap) may cause the corresponding messagingapplication to be opened on the computing device and presented to thedevice user. FIG. 5F illustrates an example of a device user performinga second tap gesture (e.g., after a first tap gesture), and FIG. 5Iillustrates an example of a device user performing a slide gesture(e.g., after a tap gesture). FIG. 5G illustrates an example of anapplication corresponding to the interactive element being opened on thecomputing device after the first and second gestures have beencompleted. In particular embodiments, if the computing device is lockedwith a pin- or password-entry requirement, the second gesture performedby the device user (corresponding, e.g., to gesture instructionspresented to the device user) may cause a pin- or password-entry screento be opened on the computing device. If the device user correctlyenters the pin or password, the application corresponding to theselected interactive element may then be opened. In particularembodiments, the recency or level of the device user's interaction withthe computing device may determine whether a user's interaction with aninteractive element (e.g., using a gesture) directly opens anapplication associated with the interactive element or requires a secondgesture before opening the application. As an example, the device usermay, after recent (e.g., within the last 2 minutes) or intensive (e.g.,meeting a threshold of gestures per time interval) interaction with thecomputing device, tap an interactive element on a home screen of thecomputing device. The device user's gesture (e.g., tap) may cause theapplication associated with the interactive element to open directly,without need for a second gesture to be performed by the device user,based on the recency or level of the device user's interaction with thecomputing device.

In particular embodiments, a user may be presented with multipleinteractive elements that may indicate information to the user. As anexample, two different interactive elements may indicate that the userhas received two different messages, one from a first user and one froma second user on a social-networking website. Any suitable type ofinformation may be indicated by one or more interactive elementsdisplayed to the user. In particular embodiments, the display andfunction of each of multiple interactive elements are independent. Forexample, a first interactive element may be selected, dismissed, orotherwise interacted with independent of a second interactive element.In yet other embodiments, the movement or dismissal of one or moreinteractive elements causes the automatic repositioning of the remaininginteractive elements. In particular embodiments, multiple interactiveelements may be configured to be displayed to the user in a stack or apile on a screen of the computing device, either automatically or inresponse to a user gesture. In particular embodiments, when multipleinteractive elements are displayed on a screen of the computing device,the user may perform a gesture to “stack” the interactive elements fordisplay on the screen. As an example, the user may press and hold aparticular interactive element on the screen, prompting the otherinteractive elements on the screen to stack behind the selectedinteractive element. In particular embodiments, if the interactiveelements are displayed in a stack or a pile, and if the user selects thestack (e.g., by tapping the topmost element of the stack), a userinterface may be opened. As another example, if the interactive elementsare displayed in a stack or a pile, the user may dismiss the stack orpile of interactive elements by pressing and holding the stack or pileand dragging it “off” (e.g. toward the edge of) the screen of thecomputing device. This disclosure contemplates any suitable arrangementof interactive elements in a display to a user of a computing deviceincluding, for example, a stack or pile, a vertical series, a horizontalseries, or a fan-out display. As an example, the interactive elementsmay be displayed in a digest form (e.g., including recent messages ornotifications of actions of other users) on a home screen of a computingdevice. In the example of a stack or pile display, the display mayinclude a visual indicator that the stack contains more than oneinteractive element. Additionally, the choice of interactive element forthe “top” of the stack may depend on other information—for example, thetop element may correspond to the most recent message sent to the useror a message that has not yet been read by the user, or the top elementmay correspond to the element selected by the user to be the topelement. The user may be able to select, drag, and drop interactiveelements from a pile or series (or any other arrangement) to desiredlocations on the screen of the computing device. In particularembodiments, the user may specify where interactive elements appear on ascreen of the computing device. FIG. 5J illustrates an example screen ofa computing device with multiple interactive elements displayed in aseries. FIG. 5K illustrates a user gesture to select one of theinteractive elements (e.g., pressing and holding of the element) to bethe top of a yet-to-be constructed stack of the interactive elements.FIGS. 5L and 5M illustrate the animation and result of the user'sgesture (e.g., press and hold) to cause the stacking of the interactiveelements displayed on the screen behind the selected interactiveelement. FIG. 5N illustrates a user gesture to dismiss the stack ofinteractive elements via a swipe to the left of the screen, and FIG. 5Oillustrates the result of the user's dismissal of the stack ofinteractive elements. In the example of FIG. 5O, the text in the userinterface is altered once the interactive elements are dismissed.

FIG. 5P illustrates an example method 510 for selecting an interactiveelement on a computing device. The method may begin at step 511, where acomputing device provides for presentation to a user a first userinterface, the first user interface comprising a plurality ofinteractive elements. At step 512, the computing device receives firstuser input selecting one of the interactive elements. At step 513, thecomputing device, in response to the first user input, provides forpresentation to the user an animation associated with the selected oneof the interactive elements. At step 514, the computing device receivessecond user input associated with the selected one of the interactiveelements. At step 515, the computing device, in response to the seconduser input, provides for presentation to the user a second userinterface, the second user interface being associated with the selectedone of the interactive elements. Particular embodiments may repeat oneor more steps of the method of FIG. 5P, where appropriate. Although thisdisclosure describes and illustrates particular steps of the method ofFIG. 5P as occurring in a particular order, this disclosure contemplatesany suitable steps of the method of FIG. 5P occurring in any suitableorder. Moreover, although this disclosure describes and illustrates anexample method for selecting an interactive element on a computingdevice including the particular steps of the method of FIG. 5P, thisdisclosure contemplates any suitable method for selecting an interactiveelement on a computing device including any suitable steps, which mayinclude all, some, or none of the steps of the method of FIG. 5P, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 5P, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 5P.

FIG. 5Q illustrates an example method 520 for rearranging interactiveelements. The method may begin at step 521, where a computing deviceprovides for presentation to a user a user interface, the user interfacecomprising a plurality of related interactive elements. At step 522, thecomputing device receives touch gesture input from the user selectingone of the plurality of related interactive elements, wherein the touchgesture input has a duration of at least a pre-determined amount oftime. At step 523, the computing device, in response to the touchgesture input, rearranges the plurality of related interactive elements,wherein rearranging comprises stacking the plurality of relatedinteractive elements for presentation to the user. Particularembodiments may repeat one or more steps of the method of FIG. 5Q, whereappropriate. Although this disclosure describes and illustratesparticular steps of the method of FIG. 5Q as occurring in a particularorder, this disclosure contemplates any suitable steps of the method ofFIG. 5Q occurring in any suitable order. Moreover, although thisdisclosure describes and illustrates an example method for rearranginginteractive elements including the particular steps of the method ofFIG. 5Q, this disclosure contemplates any suitable method forrearranging interactive elements including any suitable steps, which mayinclude all, some, or none of the steps of the method of FIG. 5Q, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 5Q, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 5Q.

FIG. 6 illustrates an example computer system 600. In particularembodiments, one or more computer systems 600 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 600 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 600 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 600.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems600. This disclosure contemplates computer system 600 taking anysuitable physical form. As example and not by way of limitation,computer system 600 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, or acombination of two or more of these. Where appropriate, computer system600 may include one or more computer systems 600; be unitary ordistributed; span multiple locations; span multiple machines; spanmultiple data centers; or reside in a cloud, which may include one ormore cloud components in one or more networks. Where appropriate, one ormore computer systems 600 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 600 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 600 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 600 includes a processor 602,memory 604, storage 606, an input/output (I/O) interface 608, acommunication interface 610, and a bus 612. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 602 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 602 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 604, or storage 606; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 604, or storage 606. In particular embodiments, processor602 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 602 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 602 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 604 or storage 606, andthe instruction caches may speed up retrieval of those instructions byprocessor 602. Data in the data caches may be copies of data in memory604 or storage 606 for instructions executing at processor 602 tooperate on; the results of previous instructions executed at processor602 for access by subsequent instructions executing at processor 602 orfor writing to memory 604 or storage 606; or other suitable data. Thedata caches may speed up read or write operations by processor 602. TheTLBs may speed up virtual-address translation for processor 602. Inparticular embodiments, processor 602 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 602 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 602may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 602. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 604 includes main memory for storinginstructions for processor 602 to execute or data for processor 602 tooperate on. As an example and not by way of limitation, computer system600 may load instructions from storage 606 or another source (such as,for example, another computer system 600) to memory 604. Processor 602may then load the instructions from memory 604 to an internal registeror internal cache. To execute the instructions, processor 602 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 602 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor602 may then write one or more of those results to memory 604. Inparticular embodiments, processor 602 executes only instructions in oneor more internal registers or internal caches or in memory 604 (asopposed to storage 606 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 604 (as opposedto storage 606 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 602 tomemory 604. Bus 612 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 602 and memory 604 and facilitateaccesses to memory 604 requested by processor 602. In particularembodiments, memory 604 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 604 may include one ormore memories 604, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 606 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 606may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage606 may include removable or non-removable (or fixed) media, whereappropriate. Storage 606 may be internal or external to computer system600, where appropriate. In particular embodiments, storage 606 isnon-volatile, solid-state memory. In particular embodiments, storage 606includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 606 taking any suitable physicalform. Storage 606 may include one or more storage control unitsfacilitating communication between processor 602 and storage 606, whereappropriate. Where appropriate, storage 606 may include one or morestorages 606. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 608 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 600 and one or more I/O devices. Computer system600 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 600. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 608 for them. Where appropriate, I/O interface 608 mayinclude one or more device or software drivers enabling processor 602 todrive one or more of these I/O devices. I/O interface 608 may includeone or more I/O interfaces 608, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 610 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 600 and one or more other computer systems 600 or one ormore networks. As an example and not by way of limitation, communicationinterface 610 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 610 for it. As an example and not by way of limitation,computer system 600 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 600 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 600 may include any suitable communication interface 610 for anyof these networks, where appropriate. Communication interface 610 mayinclude one or more communication interfaces 610, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 612 includes hardware, software, or bothcoupling components of computer system 600 to each other. As an exampleand not by way of limitation, bus 612 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 612may include one or more buses 612, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,functions, operations, or steps, any of these embodiments may includeany combination or permutation of any of the components, elements,functions, operations, or steps described or illustrated anywhere hereinthat a person having ordinary skill in the art would comprehend.Furthermore, reference in the appended claims to an apparatus or systemor a component of an apparatus or system being adapted to, arranged to,capable of, configured to, enabled to, operable to, or operative toperform a particular function encompasses that apparatus, system,component, whether or not it or that particular function is activated,turned on, or unlocked, as long as that apparatus, system, or componentis so adapted, arranged, capable, configured, enabled, operable, oroperative.

What is claimed is:
 1. A method comprising: by a computing device,displaying a user interface comprising a plurality of interactiveelements to a user, wherein one or more interactive elements of theplurality of interactive elements are associated with visual indicatorsindicating that the one or more interactive elements are associated withnotifications; by the computing device, receiving a first touch gestureinput from the user selecting a first interactive element of the one ormore interactive elements, wherein the first touch gesture input has aduration of greater than a pre-determined amount of time; by thecomputing device, in response to the first touch gesture input from theuser, stacking the one or more interactive elements associated with thevisual indicators into a stack with the first interactive element beingon top of the stack; by the computing device, receiving a second touchgesture input from the user, wherein the second touch gesture inputcomprises dragging the stack toward an edge of the user interface; bythe computing device, in response to the second touch gesture input,removing from display the one or more interactive elements in the stack,wherein the remaining interactive elements of the plurality ofinteractive elements remain being displayed on the user interface afterthe first interactive element is removed; and by the computing device,in response to removing from display the one or more interactiveelements in the stack, altering one or more components of the remaininginteractive elements that remain being displayed on the user interfaceafter the one or more interactive elements in the stack are removed. 2.The method of claim 1, wherein the plurality of interactive elements aredisplayed in a lock state of the computing device, and wherein thedisplay of the plurality of interactive elements persists until thecomputing device receives the second touch gesture.
 3. The method ofclaim 1, wherein the notifications are associated with one or moreinteractions of an associated user of an online social network to one ormore previously published contents of the user on the online socialnetwork.
 4. The method of claim 1, wherein the first touch gesture inputcomprises pressing and holding.
 5. The method of claim 1, furthercomprising: by the computing device, receiving additional touch gestureinput from the user, the additional touch gesture input comprising a tapby the user on a second interactive element of the plurality ofinteractive elements; and by the computing device, in response to theadditional touch gesture input, providing for presentation to the user asecond user interface associated with the second interactive element. 6.The method of claim 1, wherein the first interactive element has acontent visual indicator indicating that the interactive element hasdisplayed only a portion of an associated content.
 7. The method ofclaim 1, wherein the first interactive element is fully visuallypresented to the user, and wherein the stack comprises one or more stackindicators indicating that the stack includes multiple interactiveelements.
 8. A system comprising: a computing device, the computingdevice comprising one or more processors; and a memory coupled to theprocessors comprising instructions executable by the processors, theprocessors operable when executing the instructions to: display a userinterface comprising a plurality of interactive elements to a user,wherein one or more interactive elements of the plurality of interactiveelements are associated with visual indicators indicating that the oneor more interactive elements are associated with notifications; receivea first touch gesture input from the user selecting a first interactiveelement of the one or more interactive elements, wherein the first touchgesture input has a duration of greater than a pre-determined amount oftime; in response to the first touch gesture input from the user, stackthe one or more interactive elements associated with the visualindicators into a stack with the first interactive element being on topof the stack; receive a second touch gesture input from the user,wherein the second touch gesture input comprises dragging the stacktoward an edge of the user interface; in response to the second touchgesture input, remove from display the one or more interactive elementsin the stack, wherein the remaining interactive elements of theplurality of interactive elements remain being displayed on the userinterface after the first interactive element is removed; and inresponse to removing from display the one or more interactive elementsin the stack, alter one or more components of the remaining interactiveelements that remain being displayed on the user interface after the oneor more interactive elements in the stack are removed.
 9. The system ofclaim 8, wherein the plurality of interactive elements are displayed ina lock state of the computing device, and wherein the display of theplurality of interactive elements persists until the computing devicereceives the second touch gesture.
 10. The system of claim 8, whereinthe notifications are associated with one or more interactions of anassociated user of an online social network to one or more previouslypublished contents of the user on the online social network.
 11. Thesystem of claim 8, wherein the first touch gesture input comprisespressing and holding.
 12. The system of claim 8, wherein the processorsare further operable when executing the instructions to: receiveadditional touch gesture input from the user, the additional touchgesture input comprising a tap by the user on a second interactiveelement of the plurality of interactive elements; and in response to theadditional touch gesture input, provide for presentation to the user asecond user interface associated with the second interactive element.13. The system of claim 8, wherein the first interactive element has acontent visual indicator indicating that the interactive element hasdisplayed only a portion of an associated content.
 14. The system ofclaim 8, wherein the first interactive element is fully visuallypresented to the user, and wherein the stack comprises one or more stackindicators indicating that the stack includes multiple interactiveelements.
 15. One or more computer-readable non-transitory storage mediaembodying software that is operable when executed to: display a userinterface comprising a plurality of interactive elements to a user,wherein one or more interactive elements of the plurality of interactiveelements are associated with visual indicators indicating that the oneor more interactive elements are associated with notifications; receivea first touch gesture input from the user selecting a first interactiveelement of the one or more interactive elements, wherein the first touchgesture input has a duration of greater than a pre-determined amount oftime; in response to the first touch gesture input from the user, stackthe one or more interactive elements associated with the visualindicators into a stack with the first interactive element being on topof the stack; receive a second touch gesture input from the user,wherein the second touch gesture input comprises dragging the stacktoward an edge of the user interface; in response to the second touchgesture input, remove from display the one or more interactive elementsin the stack, wherein the remaining interactive elements of theplurality of interactive elements remain being displayed on the userinterface after the first interactive element is removed; and inresponse to removing from display the one or more interactive elementsin the stack, alter one or more components of the remaining interactiveelements that remain being displayed on the user interface after the oneor more interactive elements in the stack are removed.
 16. The media ofclaim 15, wherein the plurality of interactive elements are displayed ina lock state of the computing device, and wherein the display of theplurality of interactive elements persists until the computing devicereceives the second touch gesture.
 17. The media of claim 15, whereinthe notifications are associated with one or more interactions of anassociated user of an online social network to one or more previouslypublished contents of the user on the online social network.
 18. Themedia of claim 15, wherein the first touch gesture input comprisespressing and holding.
 19. The media of claim 15, wherein the software isfurther operable when executed to: receive additional touch gestureinput from the user, the additional touch gesture input comprising a tapby the user on a second interactive element of the plurality ofinteractive elements; and in response to the additional touch gestureinput, provide for presentation to the user a second user interfaceassociated with the second interactive element.
 20. The media of claim15, wherein the first interactive element has a content visual indicatorindicating that the interactive element has displayed only a portion ofan associated content.